package views.createViews;

//Lieven Drijkoningen c1017178 UC 10.1 Toevoegen vlucht
//Bertels Nick c1019387

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;

import com.sun.media.sound.ModelAbstractChannelMixer;

import controllers.createControllers.ToevoegenVluchtController;
import controllers.updateControllers.UpdateVluchtController;
import core.logic.services.BemanningAanduidenService;
import core.logic.services.createServices.ToevoegenVluchtService;
import core.logic.services.utilServices.ValidatieService;
import core.models.dataModels.BemanningAanduidenModel;
import core.models.dataModels.createModels.ToevoegenVluchtModel;
import core.models.domainModel.Eigenaar;
import core.models.domainModel.Luchthaven;
import core.models.domainModel.Vliegtuig;
import core.models.domainModel.Vlucht;

public class ToevoegenVluchtView extends JFrame {
	private static final long serialVersionUID = 1L;
	private JLabel lblVluchtNummer;
	private JLabel lblEigenaar;
	private JLabel lblVertrekplaats;
	private JLabel lblAankomstplaats;
	private JLabel lblPrijsEconomy;
	private JLabel lblPrijsBusiness;
	private JLabel lblStatus;
	private JLabel lblVliegtuig;
	private JLabel lblGate;
	private JLabel lblVertrektijd;
	private JLabel lblAankomsttijd;
	private JTextField txtVluchtNr;
	private JTextField txtPrijsEconomy;
	private JTextField txtPrijsBusiness;
	private JTextField txtStatus;
	private JTextField txtGate;
	private JTextField txtVertrekTijd;
	private JTextField txtAankomstTijd;
	private JComboBox<Luchthaven> cmbVertrekLuchthavens;
	private JComboBox<Luchthaven> cmbAankomstLuchthavens;
	private JComboBox<Eigenaar> cmbEigenaars;
	private JComboBox<Vliegtuig> cmbVliegtuigen;
	private JButton btnAnnuleren;
	private JButton btnToevoegenVlucht;

	private ToevoegenVluchtModel _model;

	public ToevoegenVluchtView(ToevoegenVluchtModel model) {
		// Maken van het scherm
		// Lieven Drijkoningen
		// UC 10.1 S01
		// Alle code die ik toegevoegd heb staat onder de code van het aanmaken
		// van het scherm
		// Bertels Nick c1019387 andere layout

		lblVluchtNummer = new JLabel("Vlucht nummer :");
		lblEigenaar = new JLabel("Eigenaar :");
		lblVertrekplaats = new JLabel("Vertrekplaats :");
		lblAankomstplaats = new JLabel("Aankomstplaats :");
		lblPrijsEconomy = new JLabel("Prijs Economy :");
		lblPrijsBusiness = new JLabel("Prijs Business :");
		lblStatus = new JLabel("Status :");
		lblVliegtuig = new JLabel("Vliegtuig :");
		lblGate = new JLabel("Gate :");
		lblVertrektijd = new JLabel("Vertrektijd :");
		lblAankomsttijd = new JLabel("Aankomsttijd :");

		txtVluchtNr = new JTextField();
		txtVluchtNr.setColumns(10);
		txtVluchtNr.setName("Vlucht nummer");

		txtVertrekTijd = new JTextField();
		txtVertrekTijd.setColumns(10);
		txtVertrekTijd.setName("Vertrektijd");
		// controle korte of lange afstandsvlucht
		txtVertrekTijd.addFocusListener(tfieldListener);

		txtAankomstTijd = new JTextField();
		txtAankomstTijd.setColumns(10);
		txtAankomstTijd.setName("Aankomsttijd");
		// controle korte of lange afstandsvlucht
		txtAankomstTijd.addFocusListener(tfieldListener);

		txtPrijsEconomy = new JTextField();
		txtPrijsEconomy.setColumns(10);
		txtPrijsEconomy.setName("Prijs Economy");

		txtPrijsBusiness = new JTextField();
		txtPrijsBusiness.setColumns(10);
		txtPrijsBusiness.setName("Prijs Business");

		txtStatus = new JTextField();
		txtStatus.setColumns(10);
		txtStatus.setName("Status");

		txtGate = new JTextField();
		txtGate.setColumns(10);
		txtGate.setName("Gate");

		cmbEigenaars = new JComboBox<Eigenaar>();
		cmbEigenaars.setName("Eigenaars");

		cmbVertrekLuchthavens = new JComboBox<Luchthaven>();
		cmbVertrekLuchthavens.setName("Vertrekplaats");

		cmbAankomstLuchthavens = new JComboBox<Luchthaven>();
		cmbAankomstLuchthavens.setName("Aankomstplaats");

		cmbVliegtuigen = new JComboBox<Vliegtuig>();
		cmbVliegtuigen.setName("Vliegtuig");

		btnToevoegenVlucht = new JButton("Toevoegen Vlucht");

		btnAnnuleren = new JButton("Annuleren");
		btnAnnuleren.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				switch (_model.getSchermModus()) {
				case "CREATE":
					ToevoegenVluchtController.closeView();
					break;
				case "UPDATE":
					UpdateVluchtController.closeViewDetail();
					break;
				case "DELETE":
					break;
				case "VIEW":
					break;
				default:
					break;
				}
			}
		});
		GroupLayout groupLayout = new GroupLayout(getContentPane());
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGap(18)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(lblVluchtNummer)
								.addComponent(lblEigenaar)
								.addComponent(lblVertrekplaats)
								.addComponent(lblAankomstplaats)
								.addComponent(lblPrijsEconomy)
								.addComponent(lblPrijsBusiness)
								.addComponent(lblStatus)
								.addComponent(lblVliegtuig)
								.addComponent(lblGate))
							.addGap(30)
							.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
								.addGroup(groupLayout.createSequentialGroup()
									.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
										.addComponent(cmbVertrekLuchthavens, 0, 103, Short.MAX_VALUE)
										.addComponent(txtVluchtNr, GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE)
										.addComponent(cmbAankomstLuchthavens, Alignment.TRAILING, 0, 103, Short.MAX_VALUE)
										.addComponent(cmbEigenaars, 0, 103, Short.MAX_VALUE))
									.addPreferredGap(ComponentPlacement.RELATED))
								.addComponent(txtGate, GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE)
								.addComponent(cmbVliegtuigen, 0, 103, Short.MAX_VALUE)
								.addComponent(txtStatus, GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE)
								.addGroup(groupLayout.createSequentialGroup()
									.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
										.addComponent(txtPrijsEconomy, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE)
										.addComponent(txtPrijsBusiness, GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE))
									.addPreferredGap(ComponentPlacement.RELATED))))
						.addGroup(groupLayout.createSequentialGroup()
							.addContainerGap()
							.addComponent(btnAnnuleren)
							.addPreferredGap(ComponentPlacement.UNRELATED)
							.addComponent(btnToevoegenVlucht)))
					.addGap(18)
					.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
						.addComponent(lblAankomsttijd)
						.addComponent(lblVertrektijd))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
						.addComponent(txtAankomstTijd)
						.addComponent(txtVertrekTijd, GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE))
					.addContainerGap())
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addContainerGap()
					.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
						.addGroup(groupLayout.createSequentialGroup()
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(lblVluchtNummer)
								.addComponent(txtVluchtNr, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(lblEigenaar)
								.addComponent(cmbEigenaars, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(lblVertrekplaats)
								.addComponent(cmbVertrekLuchthavens, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(lblAankomstplaats)
								.addComponent(cmbAankomstLuchthavens, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
						.addGroup(groupLayout.createSequentialGroup()
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(lblVertrektijd)
								.addComponent(txtVertrekTijd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(lblAankomsttijd)
								.addComponent(txtAankomstTijd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblPrijsEconomy)
						.addComponent(txtPrijsEconomy, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblPrijsBusiness)
						.addComponent(txtPrijsBusiness, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblStatus)
						.addComponent(txtStatus, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblVliegtuig)
						.addComponent(cmbVliegtuigen, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblGate)
						.addComponent(txtGate, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(btnToevoegenVlucht)
						.addComponent(btnAnnuleren))
					.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
		);
		getContentPane().setLayout(groupLayout);

		// Ophalen van het model uit de controller
		// Lieven Drijkoningen
		this._model = model;

		// Ophalen van alle eigenaars en ze plaatsen in de combobox
		// Lieven Drijkoningen
		// uc 10.1 S02
		for (Eigenaar e : _model.get_mogelijkeEigenaars()) {
			cmbEigenaars.addItem(e);
		}

		// Ophalen van alle luchthavens en ze plaatsen in de comboboxen
		// Lieven Drijkoningen
		// UC 10.1 S03
		for (Luchthaven l : _model.get_mogelijkeLuchthavens()) {
			cmbAankomstLuchthavens.addItem(l);
			cmbVertrekLuchthavens.addItem(l);
		}
		// Random gate genereren, de code voor het genereren staat in de
		// ToevoegenVluchtService.getToevoegenVluchtModel
		// Lieven Drijkoningen
		// UC 10.1 S05
		txtGate.setText(Integer.toString(_model.get_gate()));


		
		// Hier wordt de combobox van de vliegtuigen aangepast na het selecteren
		// van een andere eigenaar
		// Lieven Drijkoningen
		// Er moet wel nog een keuze gemaakt worden met vliegtuigen op basis van
		// korte- of langeafstandsvluchten
		cmbEigenaars.addItemListener(new ItemListener() {

			@Override
			public void itemStateChanged(ItemEvent e) 
			{
				mogelijkeVliegtuigenAanpassen();
			}
		});


		btnToevoegenVlucht.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (e.getSource() == btnToevoegenVlucht) {
					switch (_model.getSchermModus()) {
					case "CREATE":
						voegVluchtToe();
						break;
					case "UPDATE":
						updateVlucht();
						break;
					case "DELETE":
						break;
					case "VIEW":
						break;
					default:
						break;
					}
				}
			}
		});

		switch (_model.getSchermModus()) {
		case "CREATE":
			this.setTitle("Toevoegen vlucht");
			btnToevoegenVlucht.setText("Toevoegen");
			break;
		case "UPDATE":
			this.setTitle("Update vlucht " + _model.getVlucht().getVluchtId());
			btnToevoegenVlucht.setText("Updaten");
			vulVluchtGegevensIn();
			
			break;
		case "DELETE":
			break;
		case "VIEW":
			break;
		default:
			break;
		}
	}

	// Bertels Nick c1019387
	// validatie
	private Boolean validateVlucht() {
		// ( vlucht nummer )controle op leeg veld en op maximum veld lengte
		if (!ValidatieService.isPresentAndLength(txtVluchtNr, 45,
				txtVluchtNr.getName()))
			return false;
		// ( eigenaars ) controle op selectie
		if (cmbEigenaars.getSelectedItem() == null) {
			JOptionPane.showMessageDialog(null,
					"Gelieve een eigenaar te selecteren.", "Fout",
					JOptionPane.ERROR_MESSAGE);
			return false;
		}
		// ( vertrekplaats ) controle op selectie
		if (cmbVertrekLuchthavens.getSelectedItem() == null) {
			JOptionPane.showMessageDialog(null,
					"Gelieve een vertrekplaats te selecteren.", "Fout",
					JOptionPane.ERROR_MESSAGE);
			return false;
		}
		// ( vertrektijd )controle op leeg veld en op maximum veld lengte
		if (!ValidatieService.isPresentAndLength(txtVertrekTijd, 45,
				txtVertrekTijd.getName()))
			return false;
		// ( vertrektijd )controle op tijds format
		if (!ValidatieService.isTijd(txtVertrekTijd, txtVertrekTijd.getName()))
			return false;
		// ( aankomstplaats ) controle op selectie
		if (cmbAankomstLuchthavens.getSelectedItem() == null) {
			JOptionPane.showMessageDialog(null,
					"Gelieve een aankomstplaats te selecteren.", "Fout",
					JOptionPane.ERROR_MESSAGE);
			return false;
		}
		// controle op verschil vertrekplaats en aankomstplaats
		if (cmbVertrekLuchthavens.getSelectedItem() == cmbAankomstLuchthavens
				.getSelectedItem()) {
			JOptionPane
					.showMessageDialog(
							null,
							"De aankomstplaats kan niet hetzelfde zijn aan de vertrekplaats.",
							"Fout", JOptionPane.ERROR_MESSAGE);
			return false;
		}
		// ( aankomsttijd )controle op leeg veld en op maximum veld lengte
		if (!ValidatieService.isPresentAndLength(txtAankomstTijd, 45,
				txtAankomstTijd.getName()))
			return false;
		// ( aankomsttijd )controle op tijds format
		if (!ValidatieService
				.isTijd(txtAankomstTijd, txtAankomstTijd.getName()))
			return false;
		// controle op vertrek en aankomst tijden
		if (ToevoegenVluchtService.tijdsverschilInMinuten(txtVertrekTijd,
				txtAankomstTijd) < 0) {
			JOptionPane.showMessageDialog(null,
					"De aankomsttijd moet later zijn dan de vertrektijd.",
					"Fout", JOptionPane.ERROR_MESSAGE);
			return false;
		}
		// ( prijs economy )controle op prijs
		if (!ValidatieService.isDouble(txtPrijsEconomy,
				txtPrijsEconomy.getName()))
			return false;
		// ( prijs economy )controle op maximum veld lengte
		if (!ValidatieService.isLength(txtPrijsEconomy, 18,
				txtPrijsEconomy.getName()))
			return false;
		// ( prijs economy )controle op 0 waarde
		if ((Double.parseDouble(txtPrijsEconomy.getText()) < 0)) {
			JOptionPane.showMessageDialog(null, txtPrijsEconomy.getName()
					+ " moet groter zijn dan 0.", "Fout",
					JOptionPane.ERROR_MESSAGE);
			return false;
		}
		// ( prijs business ) controle op prijs
		if (!ValidatieService.isDouble(txtPrijsBusiness,
				txtPrijsBusiness.getName()))
			return false;
		// ( prijs business )controle op maximum veld lengte
		if (!ValidatieService.isLength(txtPrijsBusiness, 18,
				txtPrijsBusiness.getName()))
			return false;
		// ( prijs business )controle op 0 waarde
		if ((Double.parseDouble(txtPrijsBusiness.getText()) < 0)) {
			JOptionPane.showMessageDialog(null, txtPrijsBusiness.getName()
					+ " moet groter zijn dan 0.", "Fout",
					JOptionPane.ERROR_MESSAGE);
			return false;
		}
		// ( status )controle op leeg veld en op maximum veld lengte
		if (!ValidatieService.isPresentAndLength(txtStatus, 3,
				txtStatus.getName()))
			return false;
		// ( vliegtuig ) controle op selectie
		if (cmbVliegtuigen.getSelectedItem() == null) {
			JOptionPane.showMessageDialog(null,
					"Gelieve een vliegtuig te selecteren.", "Fout",
					JOptionPane.ERROR_MESSAGE);
			return false;
		}
		// ( gate )controle op int waarde
		if (!ValidatieService.isInteger(txtGate, txtGate.getName()))
			return false;
		return true;

	}

	// Bertels Nick c1019387 
	private FocusListener tfieldListener = new FocusListener() {
		@Override
		public void focusGained(FocusEvent e) {
		}

		@Override
		public void focusLost(FocusEvent e) 
		{
			if (e.getComponent().getName() == "Aankomsttijd") 
			{
				if (!_model.getSchermModus().equals("UPDATE")) 
				{					
					mogelijkeVliegtuigenAanpassen();
				}
			}
			else if (e.getComponent().getName() == "Vertrektijd") 
			{
				if (!_model.getSchermModus().equals("UPDATE")) 
				{
					mogelijkeVliegtuigenAanpassen();
				}
			}
		}
		

	};


	public void voegVluchtToe() {
		// validatie
		// Bertels Nick c1019387

		if (validateVlucht()) {
			_model.set_vluchtnr(txtVluchtNr.getText());
			_model.set_luchthavenVertrek((Luchthaven) cmbVertrekLuchthavens
					.getSelectedItem());
			_model.set_vertrekTijd(txtVertrekTijd.getText());
			_model.set_luchthavenAankomst((Luchthaven) cmbAankomstLuchthavens
					.getSelectedItem());
			_model.set_aankomstTijd(txtAankomstTijd.getText());
			_model.set_prijsEcon(Double.parseDouble(txtPrijsEconomy.getText()));
			_model.set_prijsBusiness(Double.parseDouble(txtPrijsBusiness
					.getText()));
			_model.set_vliegtuig((Vliegtuig) cmbVliegtuigen.getSelectedItem());
			_model.set_gate(Integer.parseInt(txtGate.getText()));
			_model.set_status(txtStatus.getText());

			ToevoegenVluchtController.handleView(_model);
		}
	}

	public void updateVlucht() {
		if (validateVlucht()) {
			_model.set_vluchtId(_model.getVlucht().getVluchtId());
			_model.set_vluchtnr(txtVluchtNr.getText());
			_model.set_luchthavenVertrek((Luchthaven) cmbVertrekLuchthavens
					.getSelectedItem());
			_model.set_vertrekTijd(txtVertrekTijd.getText());
			_model.set_luchthavenAankomst((Luchthaven) cmbAankomstLuchthavens
					.getSelectedItem());
			_model.set_aankomstTijd(txtAankomstTijd.getText());
			_model.set_prijsEcon(Double.parseDouble(txtPrijsEconomy.getText()));
			_model.set_prijsBusiness(Double.parseDouble(txtPrijsBusiness
					.getText()));
			_model.set_vliegtuig((Vliegtuig) cmbVliegtuigen.getSelectedItem());
			_model.set_gate(Integer.parseInt(txtGate.getText()));
			_model.set_status(txtStatus.getText());

			UpdateVluchtController.handleViewDetail(_model);
		}
	}

	public void vulVluchtGegevensIn() {
		Vlucht vlucht = _model.getVlucht();

		txtVluchtNr.setText(vlucht.getVluchtNr());
		txtVertrekTijd.setText(vlucht.getVertrekTijdStip());
		txtAankomstTijd.setText(vlucht.getAankomstTijdStip());
		txtPrijsEconomy.setText(Double.toString(vlucht.getPrijsEcon()));
		txtPrijsBusiness.setText(Double.toString(vlucht.getPrijsBusiness()));
		txtStatus.setText(vlucht.get_status());
		txtGate.setText(Integer.toString(vlucht.get_gate()));

		// Set the selected Eigenaar in the combobox
		for (int i = 0; i < cmbEigenaars.getItemCount(); i++) {
			if (cmbEigenaars.getItemAt(i).equals(
					vlucht.getVliegtuig().get_eigenaar())) {
				cmbEigenaars.setSelectedIndex(i);
			}
		}

		// Set the selected Luchthaven in the combobox
		for (int i = 0; i < cmbVertrekLuchthavens.getItemCount(); i++) {
			if (cmbVertrekLuchthavens.getItemAt(i).equals(
					vlucht.getVertrekPlaats())) {
				cmbVertrekLuchthavens.setSelectedIndex(i);
			}
		}

		// Set the selected Luchthaven in the combobox
		for (int i = 0; i < cmbAankomstLuchthavens.getItemCount(); i++) {
			if (cmbAankomstLuchthavens.getItemAt(i).equals(
					vlucht.getAankomstPlaats())) {
				cmbAankomstLuchthavens.setSelectedIndex(i);
			}
		}

		// Set the selected Vliegtuig in the combobox
		for (int i = 0; i < cmbVliegtuigen.getItemCount(); i++) {
			if (cmbVliegtuigen.getItemAt(i).equals(vlucht.getVliegtuig())) {
				cmbVliegtuigen.setSelectedIndex(i);
			}
		}
	}
	
	public void mogelijkeVliegtuigenAanpassen()
	{
		if ((txtVertrekTijd.getText().isEmpty() == false && txtAankomstTijd.getText().isEmpty() == false))
		{
			ArrayList<Vliegtuig> v = ToevoegenVluchtService.updateVliegtuigen(txtVertrekTijd, txtAankomstTijd, (Eigenaar) cmbEigenaars.getSelectedItem());
			
			cmbVliegtuigen.removeAllItems();
			for (Vliegtuig vl : v) 
			{
				cmbVliegtuigen.addItem(vl);
			}
		}
		else
		{
			cmbVliegtuigen.removeAllItems();
		}
			
	}
}